/*
 * Copyright (c) Jack魏 2023 - 2023, All Rights Reserved.
 */

package cn.jack1996.yiyifx.demo.p1;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

import java.io.IOException;

/**
 * 图片演示: https://docs.oracle.com/javase/8/javafx/api/javafx/scene/image/Image.html
 * <p>
 * 支持图片的格式：BMP、GIF、JPEG、PNG
 *
 * @author Jack魏
 * @since 2023/6/24 18:25
 */
public class ImageDemo extends Application {
    /**
     * 程序入口
     *
     * @param args 参数
     */
    public static void main(String[] args) {
        launch(args);
    }

    /**
     * 加载图片
     * <p>
     * 在后台加载图像，在加载时显示占位符(假设有一个ImageView节点在某处显示此图像)。该图像位于类路径的默认包中
     * Image image1 = new Image("/flower.png", true);
     * <p>
     * 加载图像并将其大小调整为100x150，而不保留其原始宽高比。类路径的Res包
     * Image image2 = new Image("my/res/flower.png", 100, 150, false, false);
     * <p>
     * 加载图像并将其宽度调整为100，同时保留其原始长宽比，使用更快的过滤方法
     * Image image3 = new Image("http://sample.com/res/flower.png", 100, 0, false, false);
     * <p>
     * 加载图像并仅在一维上将其调整为100的高度和原始宽度，而不保留原始长宽比。图像位于当前工作目录中
     * Image image4 = new Image("file:flower.png", 0, 100, false, false);
     *
     * @param stage 舞台
     */
    @Override
    public void start(Stage stage) throws IOException {
        // 这里是之间加载静态文件里面文件
        Image image = new Image("static/img/yiyi-fx.png");
        ImageView imageView = new ImageView();
        imageView.setImage(image);
        StackPane pane = new StackPane();
        pane.getChildren().add(imageView);
        Scene scene = new Scene(pane, 800, 600);
        stage.setTitle("标题信息");
        stage.setScene(scene);
        stage.show();
    }
}
